package listbyorder.access001_100.test5;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/6/6 14:15
 */
public class Solution1 {

    // 解法一； 暴力版本，穷举所有可能的子字符串，逐个判断是否是回文串
    public String longestPalindrome(String s) {
        if (s == null || s.equals("") || s.length() < 2) return s;
        int len = s.length();
        int left = 0;
        int right = 0;
        int res = 0;
        for (int i = 0; i < len; i++) {
            for (int j = i + 1; j <= len; j++) {
                if (isPalindrome(s.substring(i, j))) {
                    if (j - i > res) {
                        left = i;
                        right = j;
                        res = j - i;
                    }
                }
            }
        }
        return s.substring(left, right);
    }

    // 指定一个字符串，判断其是否是回文字符串
    private boolean isPalindrome(String s) {
        int i = 0, j = s.length() - 1;
        while (i < j) {
            if (s.charAt(i++) != s.charAt(j--)) {
                return false;
            }
        }
        return true;
    }
}
